
La qualité d'un logiciel passe par les tests et idéalement ceux-ci sont automatisés car réaliser les tests à la main est fastidieux et coûteux.
La portée de ce tutorial se concentre sur la mise en place de tests unitaires et les tests d'intégration ne seront donc pas abordé ici.
Pour pouvoir facilement tester un projet MAUI, il faut commencer par le découper en 2 parties sinon lorsqu'on veut tester du code, il y aura des problèmes d'initialisation...
On aura donc les 2 projets suivants:
Ajouter un projet

Choisir le bon type

À la fin, un nouveau projet fait partie de la solution:

Maintenant que la solution comporte 2 projets, il faut référencer la librairie à partir du projet principal:
Attention: modifier le PROJET PRINCIPAL (pas la lib)

Ajouter la lib comme référence

Optionnellement, optimiser la compilation de la lib

À partir de là, les éléments peuvent être migrés:
Ajouter le dossier ViewModels


Déplacer une classe VM

OOps, petit problème

Ajout du toolkit pour le projet lib

Suppression de l'original

Déplacement d'un XAML

Suppresion du XAML original
À toi de jouer ;-)
Il reste une petite adaptation à faire car actuellement le shell est défini dans le projet principal alors que la page MVVM1 a été déplacée dans le projet de librairie.
Il faut donc ajuster cela:
Ajouter un namespace pour la lib
L'utiliser
Tout est désormais prêt pour tester le ViewModel déplacé dans le projet de librairie.
VisualStudio propose un assistant pour créer un test unitaire, voici donc comment l'utiliser:
Identifier la méthode à tester
Faire un clic droit sur la méthode
Oops

Correction et deuxième essai

Paramètres
Les paramètres proposés peuvent être laissés tels quels
Vérification du projet généré

Une erreur s'est glissée lors de la création automatique du projet, en effet, le premier build de l'application est pour Android et cela ne fonctionne pas pour tester le code C# pur.
Il faut donc corriger le TargetFramework du fichier .csproject du projet de test, par exemple en faisant un double-clic sur le projet :

Et en corrigeant ainsi

On peut maintenant enfin coder la validation de la méthode
Pour rappel, un test suit une structure AAA, voici donc comment cela se reflète dans le code:

Il y a plusieurs manières:
Clic droit sur la méthode de test

Menu Test

Ligne de commande
dotnet test


Suite à cet exercice, les compétences suivantes ont été travaillées: